package org.dromara.oce.domain.dto;

import jakarta.validation.constraints.NotNull;
import lombok.Data;
import org.dromara.oce.constant.OceEventTypeEnums;

import java.math.BigDecimal;

@Data
public class OceanEngineReport {

    /**
     *  回传的事件，例如”激活“、”付费“。详细列表见附录
     */
    @NotNull(message = "回传的事件不能为空")
    private OceEventTypeEnums eventTypeEnums;
    /**
     * 事件发生的毫秒级时间戳
     */
    @NotNull(message = "事件时间戳不能为空")
    private long timestamp;
    /**
     * callback 字段有两个获取途径，对于监测链接归因的方式，需要从监测链接的__CALLBACK_PARAM__这个宏获取这个字段值；对于落地页或小程序归因的方式，需要从 url 中的 clickid 参数获取值。
     */
    @NotNull(message = "事件时间戳不能为空")
    private String callback;


    /**
     * 设备对应平台，安卓："android"，iOS："ios"，小写
     */
    private String platform;
    /**
     * 归因上的设备 imei(android) 的 MD5 值
     */
    private String imei;
    /**
     * 归因上的设备(ios)的 idfa 的原值
     */
    private String idfa;
    /**
     * 归因上的设备(android)的 oaid 的原值
     */
    private String oaid;
    /**
     * 若上报有重复且需要去重，请填写该id，系统会根据该ID进行去重
     */
    private String outerEventId;
    /**
     * 0：点击归因； 1：展示归因； 2：有效播放归因；   这个参数可以帮助广告主标识是通过哪种渠道进行的归因，如果不传，就会默认为点击归因。
     */
    private Integer matchType;

    /**
     * 支付金额
     */
    private BigDecimal payAmount;
    /**
     * 订单号
     */
    private String orderId;
    /**
     * 转化时间
     */
    private long convTime;

}
